export default {
  /**
   * 存储
   * @param {*} key 
   * @param {*} data 
   * @param {*} __timeout__ 超时时间（ms）
   */
  set(key, data, __timeout__ = 0) {
    if (__timeout__) {
      __timeout__ = Date.now() + Number(__timeout__)
      uni.setStorage({
        key: key,
        data: {
          data: data,
          __timeout__: __timeout__
        }
      })
    } else {
      uni.setStorage({
        key: key,
        data: data
      })
    }
  },
  /**
   * 取出
   * @param {*} key 
   * @param {*} __timeout__ 是否检测超时
   */
  get(key, __timeout__ = false) {
    let data = uni.getStorageSync(key)
    
    if (__timeout__) { // 判断是否超时
      if (data && data.__timeout__ && (data.__timeout__ > Date.now())) {
        data = data.data
      } else {
        uni.removeStorage({
          key: key
        })
        data = null
      }
    } else { // 无需判断是否超时
      // 检查数据里面是否有超时字段
      if (data && data.__timeout__ && data.data) {
        data = data.data
      }
    }

    return data
  },
  /**
   * 删除
   * @param {*} key 
   */
  remove(key) {
    uni.removeStorageSync(key)
  }
}